package com.yifeng.repo.base.mdm.loader.param;

import com.yifeng.repo.base.mdm.console.constant.MdmTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * Created by daibing on 2024/2/25.
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MdmCacheParam {

    /**
     * 主数据类型
     */
    private MdmTypeEnum mdmType;

    /**
     * 本地缓存初始化容量
     */
    private int initialCapacity = 32;

    /**
     * 本地缓存最大值
     */
    private long maximumSize = 2048;

    /**
     * 本地缓存保持时间
     */
    private long durationSeconds = 180;

    /**
     * 额外方法名，相对于默认的仅对单个入参和单个返回对象的接口做缓存
     */
    private List<String> extraMethodNames;

    /**
     * 排除方法名，相对于默认的仅对单个入参和单个返回对象的接口做缓存
     */
    private List<String> excludeMethodNames;

    /**
     * 如果指定唯一方法名列表，就仅缓存这些唯一的方法名。否则基于默认规则再做增减。
     */
    private List<String> onlyMethodNames;

}
